package com.xiaoshuidi.cloud.module.rooms.repository;

import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaoshuidi.cloud.module.rooms.mapper.RoomHouseTypeMapper;
import com.xiaoshuidi.cloud.module.rooms.pojo.RoomHouseType;
import com.xiaoshuidi.cloud.framework.common.pojo.CommonResult;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * @author hans.zhang
 * @since 2023-05-09
 */
@Slf4j
@Component
@RequiredArgsConstructor
public class RoomHouseTypeRepository extends ServiceImpl<RoomHouseTypeMapper, RoomHouseType> {

    private final RoomHouseTypeMapper roomHouseTypeMapper;

    public RoomHouseType getLayout(Integer bedRoomNum, Integer livingRoomNum, Integer toiletNum, Integer kitchenNum, Integer balcony) {
        LambdaQueryWrapper<RoomHouseType> wrapper = Wrappers.lambdaQuery();
        wrapper.eq(RoomHouseType::getBedRoomNum, bedRoomNum);
        wrapper.eq(RoomHouseType::getLivingRoomNum, livingRoomNum);
        wrapper.eq(RoomHouseType::getToiletNum, toiletNum);
        wrapper.eq(RoomHouseType::getKitchenNum, kitchenNum);
        wrapper.eq(RoomHouseType::getBalcony, balcony);
        return roomHouseTypeMapper.selectOne(wrapper);
    }

    public RoomHouseType myGetById(Long roomHouseTypeId) {
        RoomHouseType roomHouseType = this.getById(roomHouseTypeId);
        Assert.isTrue(ObjectUtil.isNotEmpty(roomHouseType),"户型信息不存在");
        return roomHouseType;
    }
}
